The present invention generally relates to a method and system for rendering a virtual world environment (VWE), and more specifically, to a method and system that employs a client-server architecture for updating clients with changes in the VWE.
A VWE represents a real or imaginary place using graphics, images, video, force feedback, and audio data to define the representation on a computer to one or more users. Typically, the VWE is presented to each user on a conventional display, such as a monitor, or using special display devices that are worn like eyeglasses to enhance the illusion that the user is immersed in the VWE. An integrated combination of interacting software and hardware is used to produce a VWE that is an extension of the physical world to each user and to guide and manage interactions between the user(s) and the VWE.
There are several properties that are commonly included in a VWE. One property is enabling multiple users to simultaneously perceive and interact with the VWE and with each other through different computers that are connected by a network. Because multiple users often participate in a VWE, providing means for communicating with other users by text and/or audio messaging is a highly desirable characteristic for a VWE. Another desirable feature is enabling the user to interact with one or more simulations produced by the computer. These simulations may go beyond merely imitating the physical world and may enable activities that could not exist outside the VWE, but which are only possible in the imagination of the user. For example, a user participating in a VWE may choose to engage a fire-breathing dragon in a duel or fly on a magic carpet. To maintain a sense of reality, a VWE should dynamically perform an immediate update for each affected user when a change in the VWE occurs, e.g., when a user enters/leaves a portion of the VWE or interacts with a computer simulation in some manner.
A precursor to the VWE was the multi-user dungeon (MUD). Some MUDs were employed to produce fantasy games and others were used to socialize an online community of users. In a MUD, the surroundings, two or more players, and actions were represented in text-based displays for each user. The MUD was also used to organize the properties and characters for a plurality of users in a role playing game. For example, in a game managed by a MUD, each user would have a permanent identity that could be associated with a plurality of characters, each character could carry and wield selected artifacts, and each character could also move between different locations. Further, the MUD usually employed a database to store the gaming history of each user and the particular properties associated with each character. Typically, the MUD would control the production and distribution of the text to each user for display on that user""s computer. However, MUDs have not been successfully employed to solve the larger problem of producing and distributing a graphically based VWE for a large number of users, because of their inherent limitations.
In the past, a MUD was often implemented by a main computer in a system that employed a main-remote architecture. The tasks typically associated with the main computer were storing data, maintaining a database, producing text, and controlling the distribution of the text to each remote computer for display to the user. Further, the main computer would process and immediately distribute a message to each remote computer whenever a change in the game had occurred. Unfortunately, the amount of information that must be processed by the main computer and transmitted to each remote computer (user) increases exponentially as the number of users increases arithmetically, i.e., for n users, the total amount of data that the main computer must determine and transmit to each remote computer is roughly n2. Consequently, the use of a main-remote computer system to produce and display a MUD tends to create a computational and data transmission resource crisis with even a relatively small number of users disposed in the same location.
Although VWEs may be displayed in two dimensions (2D), three-dimensional (3D) VWEs have become increasingly popular. Some of the most popular VWEs use rendered geometric models and audio data to provide both a visual and auditory 3D perspective for the user. In this way, one user may hear the sound (voice) of another approaching user before actually xe2x80x9cseeingxe2x80x9d the other user in the VWE, e.g., a virtual door in a wall that separates two users may still enable the users to xe2x80x9chearxe2x80x9d each other while the wall in which the door is disposed blocks their visual perception of each other. Updating the visual and/or auditory perspectives according to a user""s movement, spatial disposition, and perceptive occlusionxe2x80x94in an acceptable time framexe2x80x94has proven to be a difficult problem to solve in the prior art.
A popular type of VWE is the multiple user game that employs a graphically based 3D environment to provide interactions between computer simulations and/or users. Typically, VWEs do not employ the main-remote computer systems used by MUDs. Instead, a client-server architecture may be employed to manage the VWE, and distribute tasks between the server and client computers. In this prior art approach, a server computer controls and processes a complete or xe2x80x9cworldxe2x80x9d database for everything disposed in the VWE. The server then determines and downloads a complete geometric model for the entire VWE to each client computer, which stores the model in a temporary cache. Further, the client computer performs the processing associated with rendering the images in accordance with the downloaded geometric model and displays the rendered images as a 3D VWE to the user. However, since the clients are not enabled to change the geometric model when local interactions occur, the server must re-determine the entire model for changes that occur in response to user actions. Following such a change, the geometric model is again downloaded by the server as an update to each client. The clients help reduce the computational demands on the server by performing the intensive tasks associated with rendering the images that are displayed to the user. Also, since the amount of data that must be transmitted from the server to each client is reduced when the client provides the image rendering resources, the overall efficiency of a network employed by the VWE is somewhat improved.
Although the client-server system discussed above may reduce the total amount of data that must be transmitted to each user""s computer and conserves server resources, the reduction in required data transmission is insufficient to enable large numbers of users to simultaneously participate in a VWE. Additionally, if sound or force feedback is employed to provide the user with an even more sensory VWE perspective, the amount of transmitted data required to maintain the VWE in a realistic manner is far too great for this client-server model to support.
Accordingly, it will be apparent that a new approach is needed that will significantly reduce and/or more efficiently distribute the demand for computational resources for producing and maintaining a VWE between the computational devices in a network on which a VWE is accessed. A client-server architecture should be employed in a different manner than in the prior art to solve the problem of providing a VWE to an extremely large number of users. Moreover, each client should be able to dynamically perform updates to that portion of the VWE perceived by the client when local interactions occur in the VWE. This approach should enable a VWE to be produced and to respond to changes that occur.
In accord with the present invention, a method is defined for updating a VWE that is displayed to a plurality of users, to include a change in the VWE. The method includes the step of associating objects with the user. An object is chosen by the user for display on a client computer that manages a local database defining at least a portion of the VWE. The local database contains an entry for each object that is disposed within a bystander region of the displayed object. In response to a change in a selected object caused by one of the plurality of users, the change is transmitted to a server computer that maintains a world database containing at least one entry for every object disposed within the VWE. The world database is updated by the server computer to include the change in the property of the selected object. Affected objects disposed in the bystander region of the selected object are determined. The change in the property of the selected object is then entered in the local database maintained by the client computer of each user associated with an affected object. This change is conveyed by the server computer to each such client computer. Further, the change in the property of the selected object is displayed by the client computer of each affected object that senses the change and is being displayed. Thus, the change is provided for the users who are associated with affected objects.
The method also preferably includes the step of displaying each object contained within the local database maintained on the client computer to the user. The step of displaying each object includes the step of representing the portion of the VWE maintained within the local database with at least one of graphics, video, text, and sound.
Each entry in the local database and in the world database specifies a plurality of properties and a type for the associated object disposed within the VWE. The base types for an object disposed within the VWE comprise either an avatar, an artifact, a portal, or a room. Furthermore, the plurality of properties for each object disposed within the VWE comprises at least one of a name, a geometry, an owner, a location, and a contents list. Each object disposed within the VWE that comprises a container preferably includes a content property and is identified as either an open container or a closed container. An object included in the contents list of a container is not sensed by objects disposed within the bystander region of the container unless the container is identified as an open container.
The client computer is typically located remote from the server computer, so that the server computer transmits information to and receives information from the client computer over a communication link. Thus, the communication link can include either an Internet or an intranet network.
It is also contemplated that the server computer can comprise a plurality of server computers linked together in communication. In this embodiment, the number of server computers comprising the plurality can be varied dynamically as required to administer the world database.
Another aspect of the present invention is directed to a system for displaying a VWE for a plurality of users, each user having a client computer and being represented by an object in the VWE. The system includes a server/client network that has a server computer and the client computer of each user. A memory is provided for storing both machine instructions and a world database that defines the VWE. A server communication device links the server computer in communication with a plurality of client computers, each of which has a client communication device. A processor is coupled to the server communication device and the memory. The processor executes the machine instructions stored in the memory and exchanges information with each client communication device. The machine instructions cause the processor to implement functions that are generally consistent with the steps of the method discussed above.
Yet another aspect of the present invention is directed to a computer readable medium that provides machine instructions to a server computer and a client computer causing them to perform functions that are generally consistent with the method steps discussed above.